import '../../models/bt_app_config.dart';
import '../../models/bt_block.dart';
import '../../models/bt_broadcaster.dart';
import '../../models/bt_empty_data.dart';
import '../../models/bt_friend.dart';
import '../../models/bt_goods.dart';
import '../../models/bt_login_result.dart';
import '../../models/bt_oss_policy.dart';
import '../../models/bt_recharge.dart';
import '../../models/bt_strategy.dart';
import '../../models/bt_update_avatar_result.dart';
import '../../models/bt_user_info.dart';
import '../bt_api_result.dart';

abstract class BtNetDataSource {
  Future<BtApiResult<BtAppConfig>> getAppConfig(String authorized, Map<String, dynamic> queries);

  Future<BtApiResult<BtStrategy>> getStrategy(Map<String, dynamic> queries);

  Future<BtApiResult<BtEmptyData>> getRongCloudToken(Map<String, dynamic> queries);

  Future<BtApiResult<BtLoginResult>> login(String authorized, Map<String, dynamic> body);

  Future<BtApiResult<List<BtBroadcaster>>> fetchBroadcasterList(Map<String, dynamic> body);

  Future<BtApiResult<List<BtGoods>>> fetchCoinGoodsList(Map<String, dynamic> body);

  Future<BtApiResult<BtEmptyData>> logout(Map<String, dynamic> body);

  Future<BtApiResult<bool>> validToken(Map<String, dynamic> body);

  Future<BtApiResult<bool>> deleteAccount(Map<String, dynamic> body);

  Future<BtApiResult<bool>> saveUserInfo(Map<String, dynamic> body);

  Future<BtApiResult<BtUserInfo>> getUserInfo(Map<String, dynamic> queries);

  Future<BtApiResult<List<BtBlock>>> getBlockList(Map<String, dynamic> body);

  Future<BtApiResult<List<BtFriend>>> getFriendList(Map<String, dynamic> body);

  Future<BtApiResult<bool>> removeBlock(Map<String, dynamic> body);

  Future<BtApiResult<BtOssPolicy>> getOssPolicy(Map<String, dynamic> queries);

  Future<BtApiResult<BtUpdateAvatarResult>> updateAvatar(Map<String, dynamic> body);

  Future<BtApiResult<BtRecharge>> recharge(Map<String, dynamic> body);

  Future<BtApiResult<bool>> rechargePayment(Map<String, dynamic> body);

  Future<BtApiResult<bool>> addFriend(Map<String, dynamic> body);

  Future<BtApiResult<bool>> unfriend(Map<String, dynamic> body);

  Future<BtApiResult<bool>> reportOrBlock(Map<String, dynamic> body);

  Future<BtApiResult<bool>> reviewModeConsume(Map<String, dynamic> body);
}
